<?php
/**
 * 环境切换脚本
 * 用于在开发环境和生产环境之间切换
 */

echo "========================================\n";
echo "环境切换工具\n";
echo "========================================\n";

// 检查当前环境
$currentEnv = getenv('APP_ENV') ?: 'development';
echo "当前环境: " . ($currentEnv === 'production' ? '生产环境' : '开发环境') . "\n\n";

echo "请选择要切换到的环境:\n";
echo "1. 开发环境 (本地数据库)\n";
echo "2. 生产环境 (远程数据库)\n";
echo "0. 退出\n\n";

echo "请输入选项 (0-2): ";
$handle = fopen("php://stdin", "r");
$choice = trim(fgets($handle));
fclose($handle);

switch ($choice) {
    case '1':
        // 切换到开发环境
        setEnvironment('development');
        echo "已切换到开发环境\n";
        echo "数据库将连接到本地数据库 (oa5)\n";
        break;
        
    case '2':
        // 切换到生产环境
        setEnvironment('production');
        echo "已切换到生产环境\n";
        echo "数据库将连接到远程数据库 (oa)\n";
        break;
        
    case '0':
        echo "退出程序\n";
        break;
        
    default:
        echo "无效选项\n";
        break;
}

/**
 * 设置环境变量
 */
function setEnvironment($environment) {
    // 在Windows系统中，我们创建一个环境变量文件
    $envContent = "APP_ENV=$environment\n";
    file_put_contents('.env', $envContent);
    
    // 同时也更新系统环境变量（临时）
    putenv("APP_ENV=$environment");
}

/**
 * 读取环境变量
 */
function getEnvironment() {
    // 首先检查 .env 文件
    if (file_exists('.env')) {
        $envContent = file_get_contents('.env');
        if (preg_match('/APP_ENV=(development|production)/', $envContent, $matches)) {
            return $matches[1];
        }
    }
    
    // 然后检查系统环境变量
    $env = getenv('APP_ENV');
    if ($env) {
        return $env;
    }
    
    // 默认为开发环境
    return 'development';
}